import { createRouter, createWebHistory } from 'vue-router'
import { setupRouterGuard } from './guard'
import { basicRoutes } from './routes'

//创建路由实例
export const router = createRouter({
  // 对应输出base网址https://xxx.com/。
  history: createWebHistory('/'),
  // 应该添加到路由的初始路由列表
  routes: basicRoutes,
  // 在页面之间导航时控制滚动的函数。可以返回一个 Promise 来延迟滚动。此处在切换路由时，始终滚动到顶部，左上角
  scrollBehavior: () => ({ left: 0, top: 0 }),
})

//重置路由
export function resetRouter() {
  // 获取所有路由记录的完整列表 遍历
  router.getRoutes().forEach((route) => {
    const { name } = route
    //确认是否存在指定名称的路由。 存在 即删除
    router.hasRoute(name) && router.removeRoute(name)
  })
  basicRoutes.forEach((route) => {
    //确认是否存在指定名称的路由。 不存在 即添加
    !router.hasRoute(route.name) && router.addRoute(route)
  })
}

export function setupRouter(app) {
  app.use(router)
  // setupRouterGuard(router)
}
